Fundamental Concepts and Formal Semantics of Programming Languages

نویسنده

  • Peter D. Mosses
چکیده

2003 Copies may be made for personal use only Preface These lecture notes are about the conceptual analysis and formal semantic description of programming languages. They explain how to analyse programming constructs in terms of fundamental concepts, and how to formulate precise descriptions of their intended interpretation using the structural approach to operational semantics. The practical applicability of this approach to real programming languages is illustrated by describing constructs taken from Standard ML and Concurrent ML. A novel feature of this course is the use of a recently-developed variant of the structural operational semantics framework, called MSOS. This variant has the advantage of providing an exceptionally high degree of modularity: definitive descriptions of individual language constructs can be formulated independently, and remain unchanged when further constructs are added to the described language. Conventional structural operational semantic descriptions do not enjoy this property , and sometimes require extensive reformulation, for instance when adding side-effects or communicating processes to a purely functional language. A transcription of semantic descriptions into Prolog allows programs in the described language to be run according to their semantics. This helps to see how the given rules work, and to validate new rules. The notes also consider (albeit very briefly) alternative approaches to formal semantics, including action semantics, axiomatic semantics, denotational semantics , and other forms of operational semantics. The aim here is merely to provide students with a general awareness of the main approaches to formal semantics; references to the literature are provided for those who wish to continue with more advanced studies in this area. About these lecture notes: The material in these notes is intended to be read in the order in which it appears. It is strongly recommended to try most of the exercises listed at the end of each chapter: this checks that the presented material has been properly grasped, and provides further illustration of various points. A reference to an exercise in the margin indicates that the material required for the exercise has now been covered. i PREFACE ii All the main points in these notes are displayed like this.. . Each point is followed by further explanations and/or illustrations. The display of the main points should help to keep an overview of the main line during a first reading (when the intervening material may even be skipped, if desired) as well as facilitating revision. About the course based on these notes: …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Modeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism

In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...

متن کامل

Modeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism

In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...

متن کامل

Understanding Programming Language Concepts Via Operational Semantics

The origins of \formal methods" lie partly in language description (although applications of methods like VDM, RAISE or B to areas other than programming languages are probably more widely known). This paper revisits the language description task but uses operational (rather than denotational) semantics to illustrate that the crucial idea is thinking about an abstract model of something that on...

متن کامل

Continuations for Prototyping Concurrent Languages

We have recently introduced the “continuation semantics for concurrency” (CSC) technique in an attempt to exploit the benefits of using continuations in concurrent systems development. In the CSC approach, a continuation is an application-dependent configuration of computations (partially evaluated denotations). Every computation or group of computations contained in a continuation can be acces...

متن کامل

A Foreword to 'Fundamental Concepts in Programming Languages'

Christopher Strachey’s paper on Fundamental Concepts in Programming Languages is being published here for the first time. Written in the autumn of 1967, it is based on the lectures given by Strachey at an International School in Computer Programming, held in Copenhagen in August 1967. Strachey intended the paper to be published in the proceedings of the School—but the proceedings never material...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002